package com.ailesson.video.model.req;


import java.math.BigDecimal;
import java.time.LocalDateTime;

import lombok.Data;
import com.ailesson.common.reply.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;

/**
 * 课程
 * 
 * @author mac
 * @email mac@gmail.com
 * @date 2024-09-30 21:55:20
 */
@Schema(name = "分页查询条件")
@Data
public class CourseQueryReq extends PageParam {
	private static final long serialVersionUID = 1L;
	/**
	 * 课程讲师ID
	 */
	@Schema(name = "teacherId", description = "课程讲师ID", type = "Long")
    private Long teacherId;
	/**
	 * 课程专业ID
	 */
	@Schema(name = "subjectId", description = "课程专业ID", type = "Long")
    private Long subjectId;
	/**
	 * 课程专业父级ID
	 */
	@Schema(name = "subjectParentId", description = "课程专业父级ID", type = "Long")
    private Long subjectParentId;
	/**
	 * 课程标题
	 */
	@Schema(name = "title", description = "课程标题", type = "String")
    private String title;
	/**
	 * 课程销售价格，设置为0则可免费观看
	 */
	@Schema(name = "price", description = "课程销售价格，设置为0则可免费观看", type = "BigDecimal")
    private BigDecimal price;
	/**
	 * 总课时
	 */
	@Schema(name = "lessonNum", description = "总课时", type = "Integer")
    private Integer lessonNum;
	/**
	 * 视频总时长（秒）
	 */
	@Schema(name = "durationSum", description = "视频总时长（秒）", type = "Integer")
    private Integer durationSum;
	/**
	 * 课程封面图片路径
	 */
	@Schema(name = "cover", description = "课程封面图片路径", type = "String")
    private String cover;
	/**
	 * 销售数量
	 */
	@Schema(name = "buyCount", description = "销售数量", type = "Long")
    private Long buyCount;
	/**
	 * 浏览数量
	 */
	@Schema(name = "viewCount", description = "浏览数量", type = "Long")
    private Long viewCount;
	/**
	 * 课程状态 0未发布 1已发布
	 */
	@Schema(name = "status", description = "课程状态 0未发布 1已发布", type = "Integer")
    private Integer status;
	/**
	 * 课程发布时间
	 */
	@Schema(name = "publishTime", description = "课程发布时间", type = "LocalDateTime")
    private LocalDateTime publishTime;
}
